{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 1.transformer的几个术语"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- `Self-Attention`：一种机制，允许模型在处理序列的每个位置时，参考序列中的所有其他位置，从而捕捉全局依赖关系。它为每个位置生成上下文相关的表示。\n",
    "- `Multi-Head Attention`：多个注意力头（head）并行工作，每个head从不同的角度关注序列的不同部分。各个head的结果会合并在一起，使模型可以捕捉更丰富的上下文信息。（类比CNN中的卷积）\n",
    "- `Position Embedding`：Transformer模型没有内建的顺序信息，因此需要通过位置编码将输入序列中的位置信息注入到模型中，确保模型能识别序列元素的顺序。\n",
    "  - 与传统的RNN不同，RNN通过逐步处理序列元素来捕捉顺序信息。\n",
    "  - Transformer是并行处理输入序列中的所有元素。它并不通过时间步处理，所以模型本身无法知道输入序列中元素的先后顺序。\n",
    "- `Encoder`：由多个自注意力和前馈层组成，用来处理输入序列并提取特征。\n",
    "- `Decoder`：解码器模块通过多头自注意力和编码器-解码器注意力机制处理输入和生成输出序列，主要用于生成任务。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 2.结构"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Transformer 由 Encoder 和 Decoder 两个部分组成，Encoder 和 Decoder 都包含 6 个 block。\n",
    "\n",
    "- decoder在训练阶段需要输入翻译后的句子，在推理阶段不用\n",
    "- encoder输出KV,decoder生成Q\n",
    "- Ecoder的Q是embedding来的，是已知的，而Decoder输出的Q是预测的，也就是结果预测的词"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "![image-20240920212159181](https://zyc-learning-1309954661.cos.ap-nanjing.myqcloud.com/machine-learning-pic/image-20240920212159181.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 3.算法流程"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.1Embedding"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "每一个单词都是一个token，送入模型计算之前，需要对每一个token进行量化。通常用向量表示各个token。"
   ]
  }
 ],
 "metadata": {
  "language_info": {
   "name": "python"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
